部署分布式密钥管理服务

蚂蚁链分布式密钥管理服务是一个基于MPC-TEE模式的去中心化密钥管理系统,提供密钥生成、导入、恢复和签名等功能。用户无需购买云主机,即可在计算巢上快速部署并体验该服务。本文提供了详细的部署流程、实例规格、接口介绍。

说明

目前分布式密钥管理服务提供免费试用版本,欢迎大家申请试用,有任何问题欢迎进群交流

概述

蚂蚁链分布式密钥管理服务是蚂蚁链自研MPC密管算法并融合TEE集群化的去中心化密管系统方案,提供安全、高效、易用的分布式密管特性,满足密钥全链路密态分片计算、托管和用户可自定义的安全策略引擎,您无需自行购置云主机,即可在计算巢上快速部署并低代码体验MPC-TEE分布式密管服务,也可接入标准的分布式密管SaaS服务。

基础能力包括:

  • 基于MPC-TEE模式实现密钥全流程私钥不可见的密钥生成、密钥导入、密钥恢复、分布式签名等特性。

  • MPC密钥分片融合TEE实现全流程计算、托管、密管,基于安全策略引擎可配置、可定义密管策略配置。

  • MPC N/M分片多门限管理及分片Group备份部署策略,提供3/2、7/5、9/5等主流门限方案。

  • 云上标品化部署,提供SDK/RESTful等多种客户端接入模式,分片阿里云多Region跨域部署、跨域托管。

  • 2/2门限配置为例,2TEE ecs.g7t.xlarge实例提供3000以上key的托管和并行签名计算,满足更低成本。

  • 提供云上SaaS和客户私域部署,计算巢标品分钟级服务部署和快速接入,业务只需关注服务本身。

实例规格

ACK集群

实例规格

CPU规格

EPC、明文

操作系统

ECS数量

ecs.g7t.xlarge

4C、16G

EPC:16G,明文:16G

Alibaba Cloud Linux 2.1903 LTS 64位 (Hunting Beagle)

2

说明

更多商业化规格配置参考欢迎加入钉钉群(69285014993)咨询。

MySQL

版本

存储容量

cpu规格

最大连接数

时区

8.0

100g

1c 2g

2000

0

准备工作

在申请试用之前,您需要准备一个阿里云账号,对ECS、VPC、ROS、ACK、RDS等资源进行访问和创建操作。

  • 若您使用主账号,可以直接创建服务实例。

  • 若您使用RAM用户创建服务实例,且是第一次使用阿里云计算巢,需要在创建服务实例前,对使用的RAM用户的账号添加相应资源的权限。

部署流程

申请试用

  1. 您可以在阿里云的计算巢中通过分布式密钥管理关键字进行搜索。

    说明

    您可单击部署链接快速体验。

    image

  2. 请按照提示信息完成申请,在审核通过之后就可以创建服务。

创建服务

  1. 进入开通配置界面按照推荐的实例规格依次填写并单击确认订单

    image

  2. 确认订单页会显示缺少的权限基础配置预估费用,确认完成后单击立即创建

    说明

    建议申请完缺失的权限后,再进行创建。

    image

  3. 单击去列表查看实例的创建状态。

  4. 单击服务实例,进入后可以看到服务详情,等待创建完成,整个流程约20分钟。

    image

  5. 当目标实例状态为已部署时,证明部署成功。

快速体验

查看资源和对外服务IP

  1. 在左侧菜单栏中单击服务实例查看所有目前保有的实例。

  2. 单击服务实例名称或ID,进入服务实例详情页。

  3. 概览页签中查看访问IP地址。

    重要

    后续接口请求中存在的${对外服务IP},均替换为该IP。

    image.png

  4. 资源页签中,可查看创建的MySQLECS等资源。

    image

接口介绍

  • 创建节点

    curl --location --request POST '对外服务ip:8889/api/mappic/pod/createPod' \
    --header 'Content-Type: application/json' \
    --data '{
            "nodeTag": "mappic234"
            }'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": "mappic234",
        "success": true
    }
  • 生成密钥

    curl --location --request POST '对外服务ip:8889/api/mappic/dkms/key/gen' \
    --header 'Content-Type: application/json' \
    --data '{
            "keyParams": {
                "type": "ECDSA_K1",
                "length": 512
            },
            "serviceParticipants": [
                "创建节点时的tag",
                "创建节点时的tag"
            ],
            "threshold": 2,
            "totalShares": 2
    }'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": {
            "keyId": "9390321f-0d4d-4f3f-904b-6cb37accb3e6"
        },
        "success": true
    }
  • 导入密钥

    curl --location --request POST '对外服务ip:8889/api/mappic/dkms/key/import' \
    --header 'Content-Type: application/json' \
    --data '{
            "privateKey": "pem格式的私钥",
            "password":"生成私钥时的密码",
            "keyParams": {
                "type": "ECDSA_K1",
                "length": 512
            },
            "serviceParticipants": [
                "创建节点时的tag",
                "创建节点时的tag"
            ],
            "threshold": 2,
            "totalShares": 2
    }'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": {
            "instanceId":"xxxxxx"
        },
        "success": true
    }
  • 查看密钥状态

    curl --location --request GET 'http://对外服务ip:8889/api/mappic/dkms/key/get?keyId=${keyId}'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": {
            "status": "FINISHED",
            "publicKey": "pem格式的公钥",
            "errorMessage": null
        },
        "success": true
    }
  • 生成签名

    curl --location --request POST 'http://对外服务ip:8889/api/mappic/dkms/sign/req' \
    --header 'Content-Type: application/json' \
    --data '{
            "digestHex": "xxxxxxxxxxxxxx",
            "keyId": "密钥生成的keyId"
    }'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": {
            "instanceId": "b341fec1-3ec1-4fb0-9f11-5226091f0f4a"
        },
        "success": true
    }
  • 查看签名

    curl --location --request GET 'http://对外服务ip:8889/api/mappic/dkms/sign/get?instanceId=${instanceId}'
    
    // 返回结果
    {
        "errorCode": "200",
        "errorMessage": "success",
        "data": {
            "sign": "xxxxxxxx",
            "status": "FINISHED",
            "errorMessage": null
        },
        "success": true
    }

网页体验(仅用于体验非商业化版本)

  • 门户网页

    image.png

  • 登录页面

    image.png

  • 管理主页

    image.png

  • 策略管理

    image.png

  • 群组管理

    image.png

  • 钱包交易demo

    image.png

说明

更多服务体验链接,进群联系管理员@霖珂

联系我们

  • 联系邮箱:antchainmappic@service.alipay.com

  • 快速问题排查:可通过技术交流群和我们进行联系,详见下面二维码:

    • 分布式密钥管理钉钉交流群

      image.png

    • 分布式密钥管理微信交流群

      image.png